When continuous availability of a network resource is a desired goal, there are two main requirements:                1. It should be possible to maintain the resource's firmware and configuration files online with no, or minimal, disruption.        2. The ability to maintain the resource's firmware and configurations should be distributed among a number of the nodes of the cluster or network. This reduces the possibility of losing maintenance capability due to the loss of any single node or combination of nodes.        
For a programmable switch, the switch firmware can receive, process, and reply to commands that allow network management clients running in the nodes to perform necessary maintenance operations. Because these commands can be accepted at any time by the switch, they satisfy the first requirement. Because the switch will accept these commands from a client running on any node, they satisfy the second requirement.
However, this introduces a new problem. Simultaneous (or near simultaneous) maintenance requests from multiple nodes, made to the same switch, will probably result in the mutual destruction of all such requests, and may result in the switch becoming completely inoperable.
Accordingly, it would be desirable to have a mechanism that addresses this and related problems.